/**
 * 
 */
package com.google.code.netz.wfe.model;

import java.util.UUID;

/**
 * IPetriNetEntity typified with some entity data.
 * 
 * @author <a href='mailto:rahul.thakur.xdev@gmail.com'>Rahul Thakur</a>
 * @since 1.0
 * @version $Id$
 */
public interface IPetriNetEntity<D> {

	/**
	 * Unique identifier assigned to a PetriNet entity.
	 * 
	 * @return
	 */
	public UUID getId();

	/**
	 * Returns a readable label for a Petri-Net entity.
	 * 
	 * @return
	 */
	public String getLabel();

	/**
	 * Set data for this {@link IPetriNetEntity}.
	 * 
	 * @param data
	 */
	public void setData(D data);

	/**
	 * Return the data for this {@link IPetriNetEntity}.
	 * 
	 * @return T instance of data that this IPetriNetEntity may use.
	 */
	public D getData();

}
